#ifndef D_RAY_H
#define D_RAY_H

#include <helpers\math\vector3.h>
#include <helpers\math\plane.h>

namespace DelGE
{
	namespace Helpers
	{
		namespace Math
		{
			class Ray
			{
			private:
				Vector3 origin;
				Vector3 direction;

			public:
				Ray();
				Ray(const Vector3& rDirection, const Vector3& rOrigin = Vector3(0, 0, 0));
				~Ray();

				Vector3 GetDirection() const;
				Vector3 GetOrigin() const;

				void SetDirection(const Vector3& rDirection);
				void SetOrigin(const Vector3& rOrigin);

				
			};

			inline Vector3 Ray::GetDirection() const
			{
				return this->direction;
			}

			inline Vector3 Ray::GetOrigin() const
			{
				return this->origin;
			}

			inline void Ray::SetDirection(const Vector3& rDirection)
			{
				this->direction = rDirection;
			}

			inline void Ray::SetOrigin(const Vector3& rOrigin)
			{
				this->origin = rOrigin;
			}
		}
	}
}

#endif